﻿#light

namespace FSharp

open System
open System.Collections

type Comp() =
    interface IComparer with
        member x.Compare(a, b) = 0
    //member x.Compare(a, b) = (x :> IComparer).Compare(a,b)
    
type Comp2() =
    interface IComparer with
        member x.Compare(a: obj, b: obj) = 0

type Comp3() = class
    interface IComparer with
        member x.Compare(a: obj, b: obj) = 0
end

type Comp4() = class
    interface IComparer with
        member x.Compare(a: obj, b: obj) = 0
end

type Comp5() = class
    interface IComparer with
        override x.Compare(a: obj, b: obj) = 0
end

type public Comp6() = class
    interface IComparer with
        override x.Compare(a: obj, b: obj) = 0
end

type pp() = 
    let CompExp = {
        new IComparer with
            member x.Compare(a,b) = 0
    }
